package com.flyco.modules.stm.entity;

import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.flyco.common.aspect.annotation.Dict;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * @Description: 门店调拨单
 * @Author: flyco
 * @Date:   2020-10-30
 * @Version: V1.0
 */
@Data
@TableName("stm_transfer")
@ApiModel(value="stm_transfer对象", description="门店调拨单")
public class StmTransfer implements Serializable {
    private static final long serialVersionUID = 1L;
    
	/**id*/
	@TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "id")
	@JsonSerialize(using= ToStringSerializer.class)
	private Long id;
	/**收货店铺id*/
    @ApiModelProperty(value = "收货店铺id")
	private Long inStoreId;
	/**发货店铺id*/
    @ApiModelProperty(value = "发货店铺id")
	private Long outStoreId;
	/**调拨单编号*/
    @ApiModelProperty(value = "调拨单编号")
	private String transferSn;
	/**订单状态(0：已创建，1：已提交，2：收货审核，3：发货审核，4:已取消，5：已发货，6：已收货)*/
    @ApiModelProperty(value = "订单状态(0：已创建，1：已提交，2：收货审核，3：发货审核，4:已取消，5：已发货，6：已收货)")
	@Dict(dicCode = "transfer_status")
	private Integer status;
	/**制单导购*/
	@ApiModelProperty(value = "制单导购")
	private Long createSalesId;
	/**收货导购*/
	@ApiModelProperty(value = "收货导购")
	private Long receiveSalesId;
	/**物流公司*/
	@ApiModelProperty(value = "物流公司")
	private String deliveryCompany;
	/**物流单号*/
	@ApiModelProperty(value = "物流单号")
	private String deliverySn;
	/**期望到货时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "期望到货时间")
	private Date receiveTime;
	/**发货时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "发货时间")
	private Date stockOutTime;
	/**收货时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "收货时间")
	private Date stockInTime;
	/**收货店铺审核ID*/
    @ApiModelProperty(value = "收货店铺审核ID")
	private Long confirmInSalesId;
	/**收货店铺审核时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "收货店铺审核时间")
	private Date confirmInTime;
	/**发货店铺审核ID*/
    @ApiModelProperty(value = "发货店铺审核ID")
	private Long confirmOutSalesId;
	/**发货店铺审核时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "发货店铺审核时间")
	private Date confirmOutTime;
	/**备注*/
    @ApiModelProperty(value = "备注")
	private String note;
	/**创建人*/
    @ApiModelProperty(value = "创建人")
	private String createBy;
	/**创建时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
	private Date createTime;
	/**更新人*/
    @ApiModelProperty(value = "更新人")
	private String updateBy;
	/**更新时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新时间")
	private Date updateTime;

	/**调入门店名称*/
	@TableField(exist = false)
	private String inStoreId_dictText;

	/**调入确认*/
	@TableField(exist = false)
	private String confirmInSalesId_dictText;

	/**调出门店名称*/
	@TableField(exist = false)
	private String outStoreId_dictText;

	/**调出确认*/
	@TableField(exist = false)
	private String confirmOutSalesId_dictText;
}
